An application platform may execute applications (e.g., business processes) using data modeled on metaobjects. Types of metaobjects include a Business Object, a Business Intelligence View, a Floorplan (i.e., a user interface layout), User Interface Text, a Process Component, and a Message Type, among others. A Business Object-type metaobject, for example, is a software model representing real-world items used during the transaction of business. An instance of a Business Object metaobject may comprise a SalesOrder object model or an Organization object model. Instances of these object models, in turn, represent specific data (e.g., SalesOrder SO4711, ACME corporation).
An instance of a Business Object metaobject may specify business logic and/or data having any suitable structure. The structure may be determined based on the requirements of a business scenario in which the instance is to be deployed. A business application for a particular business scenario may require many business object instances, where the structure of each has been determined based on the requirements of the particular business scenario.
A customer deploying a business solution may desire changes to the Business Object metaobject instances (and/or to the instances of other metaobjects) included in the business solution. For example, a customer may require a field (e.g., Serial Number) which does not exist within the Product object model of a business solution. In addition, another customer may require an additional node or query within the Product object model of the same business solution.
Conventional techniques for adding a field to an existing object model (e.g., an instance of the Business Object metaobject) include APPEND mechanisms which change the definition of the object model at the data dictionary level. This technique requires advanced technical skill and presents other drawbacks as well. For example, an entire database system must be recompiled to effect such a changed definition, and the change occurs globally with respect to all instances of the object model within the system. Moreover, the change may require reprogramming of application clients which interact with the changed object model.
Systems are desired for facilitating the addition of nodes, actions, fields, queries, etc. to object models used in application platforms. These additions may provide increased flexibility to customers. It is desirable that such additions occur at an object model level in order to maintain system coherence and modularity.